package com.dream.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.BatchSize;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
/**
 * 些类型，只有用户是老师的情况下，才有可能就此教师
 * @author Administrator
 *
 */
@Entity
@Table(name = "sys_room")
public class Sys_Room extends AllId implements Serializable
{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private SysUser sysUser;

	private String gps;

	private Integer x1;

	private Integer y1;

	private String addess;
	
	private String state="1"; //表示当前教室是否启用，，一个教室只有一个画的，其他的全部禁用
	
	private Sys_Class sys_Class; //这个人为哪个班画的教室
	
	private Long startClass=new Long(0);//开课时间 这里开课时间，一开始，哪么这个教室，只要当前时间>于这个开课时间，就可以进行选座的操作
	//只要老师一开始上课了，这个时间就可以将些时间延寿，并更新当前所有系统中坐好的的位置，这些位置上的人，全部叫已经报到，
	//没有报道的，只能等一下次时间，将下次开课时间调为5分钟后，
	private String startClassName="nokonw";//开课名称，就是学生下节课，要上课的名称。
	
	
	private List<Sys_Room_Position> listsrp = new ArrayList<Sys_Room_Position>();; //一个教室里面有多个位置
	
 
	
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "sys_Room", orphanRemoval = true)
	@Cascade(value = { CascadeType.SAVE_UPDATE })
	@BatchSize(size = 20) 
	public List<Sys_Room_Position> getListsrp()
	{
		return listsrp;
	}

	public void setListsrp(List<Sys_Room_Position> listsrp)
	{
		this.listsrp = listsrp;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.PERSIST)
	public SysUser getSysUser()
	{
		return sysUser;
	}

	public void setSysUser(SysUser sysUser)
	{
		this.sysUser = sysUser;
	}

	public String getGps()
	{
		return gps;
	}

	public void setGps(String gps)
	{
		this.gps = gps;
	}

	public Integer getX1()
	{
		return x1;
	}

	public void setX1(Integer x1)
	{
		this.x1 = x1;
	}

	public Integer getY1()
	{
		return y1;
	}

	public void setY1(Integer y1)
	{
		this.y1 = y1;
	}

	public String getAddess()
	{
		return addess;
	}

	public void setAddess(String addess)
	{
		this.addess = addess;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Cascade(CascadeType.PERSIST)
	public Sys_Class getSys_Class() {
		return sys_Class;
	}

	public void setSys_Class(Sys_Class sys_Class) {
		this.sys_Class = sys_Class;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public Long getStartClass() {
		return startClass;
	}

	public void setStartClass(Long startClass) {
		this.startClass = startClass;
	}

	public String getStartClassName() {
		return startClassName;
	}

	public void setStartClassName(String startClassName) {
		this.startClassName = startClassName;
	}
	
	
}
